En este tutorial, veremos como se puede resolver un problema de programación lineal, utilizando el software SimplexSolver. Para una correcta ejecución del sistema, por favor, consulte el manual de instalación presente en la misma localización que este manual.
El primer paso, será crear un archivo de texto que contenga el problema. Por ejemplo, imaginemos que nuestro problema de programación lineal, será el siguiente:
El problema deberá tener dentro del archivo la siguiente apariencia:
Como podemos ver, lo único que se debe tener en cuenta es, que hay que rellenar con 0, aquellos lugares que corresponden a las variables que no aparecen, bien en la restricción o bien en la función. No se deben incluir, tampoco los nombres de las variables, ni de la función.
Por otro lado,como vemos, se pueden incluir dentro del archivo comentarios, que comiencen bien por "//" o bien por "#". Estos comentarios, podrían ir en una única línea o al final de una de las líneas del problema. Por supuesto los comentarios, no son necesarios, sino que pueden incluirse si se desea.
Una vez creado el archivo, simplemente lo guardamos dentro del directorio, donde tengamos el programa SimplexSolver.py. Una vez esté todo guardado en el mismo directorio, mediante línea de comandos accedemos a dicho directorio (cd ruta del directorio).
Una vez dentro del directorio, solo nos queda ejecutar el programa. Vamos a suponer que el archivo donde guardamos el problema se llama file.txt. Tenemos varias posibilidades para obtener la solución. Las posibilidades son las siguientes(el resultado de las ejecuciones se mostrará en su propia consola de comandos):
Si ejecutamos, el siguiente comando, simplemente se nos ofrecerá la solución del problema, acompañado de una frase que indica el tipo de solución del problema:
python SimplexSolver.py --input file.txt
A continuación, se puede ver la salida(nótese que en su ejecución debe cambiar "%run", por python y que en su caso no será necesarion poner la ruta completa de SimplexSolver, puesto que previamenta ya habrá accedido a dicha localización). Tenga en cuenta que deberá incluir la ruta del archivo en la ejecución, siempre que este no se encuentre en la misma localización que SimplexSolver.py:
In [2]:
%run ..\PySimplex\SimplexSolver.py --input ..\Files\file.txt
Mediante la siguiente ejecución, podemos obtener también las solución, pero además obtendremos el desarrollo completo del problema:
python SimplexSolver.py --input file.txt --expl
A continuación, se puede ver la salida(nótese que en su ejecución debe cambiar "%run", por python):
In [4]:
%run ..\PySimplex\SimplexSolver.py --input ..\Files\file1.txt --expl
El siguiente comando, nos permite guardar la solución(bien con el desarrollo completo o solo con la solución) del problema en un archivo. El nombre del archivo se le indica mediante --output, y aparecerá en el directorio donde tengamos guardado SimplexSolver.py a no ser que indiquemos otra localización:
python SimplexSolver.py --input archivo.txt --expl --output out.txt
A continuación, se puede ver la salida(nótese que en su ejecución debe cambiar "%run", por python):
In [5]:
%run ..\PySimplex\SimplexSolver.py --input ..\Files\file1.txt --output out.txt
A continuación, se puede ver la salida(nótese que en su ejecución debe cambiar "%run", por python):
In [10]:
%matplotlib inline
%run ..\PySimplex\SimplexSolver.py --input ..\Files\file2.txt --graphic
Por último, también podemos pedir que se nos muestre la solución del problema dual, al que estamos resolviendo. Para ello, simplemente tendremos que incluir --dual, al final de nuestra ejecución:
python SimplexSolver.py --input file.txt --output out.txt --dual
o bien,
python SimplexSolver.py --input file.txt --dual
Aquí se muestra una ejecución de lo anterior:
In [7]:
%run ..\PySimplex\SimplexSolver.py --input ..\Files\file.txt --dual
Se ha incluído también una ayuda que permite, recordar cuál es el significado de cada uno de los parámetros de entrada, así como, cuál es la forma de ejecución del programa. Para visualizar esta ayuda, simplemente se debe ejecutar
python SimplexSolver.py --help
A continuación se puede visualizar dicha ayuda:
In [8]:
%run ..\PySimplex\SimplexSolver.py --help